package Modele;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Partie {

    private String joueur;
    private int score;
    private static int scoreMinBestJoueur = 70; //score minimum pour etre considéré parmi les meilleurs
    private Questionnaire type;

    public Partie(String joueur, int score, Questionnaire type) {
        this.joueur = joueur;
        this.score = score;
        this.type = type;
    }

    /**
     * sauvegarde le score dans le fichier s'il fait parti des meileurs.
     */
    public void saveScore(String type) {
        if (score >= scoreMinBestJoueur) {
            //Ecriture dans le fichier
            try {
                FileWriter fichier;
                System.out.println("Type == "+type);
                if (type.equals("qcm")) {
                    fichier = new FileWriter("qcm.txt", true);
                } else {
                    fichier = new FileWriter("tat.txt", true);
                }
                
                fichier.write(joueur + ", " + Integer.toString(score) + ",");
                fichier.flush();
                fichier.close();

            } catch (IOException e) {
                System.out.println("Il y a eu un souci d'écriture dans le fichier \"Fiche Partie\"");
            }
        }
    }

    /**
     * v�rifie que le champs joueur de la page d'accueil a bien �t� rempli et
     * que ce n'est pas un script.
     *
     * @param joueur
     */
    /*public void verifString(String joueur) {
     // TODO - implement Partie.verifString
     throw new UnsupportedOperationException();
     }*/
    
    /**
     * classe les scores.
     */
    public String[] classerScores(String type) {
        String[] listeScores = null;
        try {
            //On ouvre le fichier à lire
            FileReader monFichierSansBuffer;
            if (type.toString().equals("qcm")) {
                monFichierSansBuffer = new FileReader("qcm.txt");
                System.out.println("fichier qcm");
            } else {
                monFichierSansBuffer = new FileReader("tat.txt");
                System.out.println("fichier txt");
            }
            //On lit le fichier
            BufferedReader monFichier = new BufferedReader(monFichierSansBuffer);
            listeScores = monFichier.readLine().split(",");
            monFichier.close();
        } catch (IOException e) {
            System.out.println("Il y a eu un souci de lecture du fichier \"Fiche Partie\"");
        }

        return listeScores;
    }
    
    public void afficherScores(String[] listeScores) {        
        //On affiche la liste
        for (int i = 0; i < listeScores.length; i++) {
            System.out.print(listeScores[i]);
            if (i%2 == 1) {
                System.out.println();
            }
        }
    }
    

    /**
     * modifie le score de la partie en cours lorsque la r�ponse est bonne.
     *
     * @param score
     */
    public void setScore(int score) {
        this.score = score;
    }

    /**
     * retourne le score de la partie en cours.
     */
    public int getScore() {
        return score;
    }

    public String getJoueur() {
        return joueur;
    }

    public void setJoueur(String joueur) {
        this.joueur = joueur;
    }

    public Questionnaire getType() {
        return type;
    }

    public void setType(Questionnaire type) {
        this.type = type;
    }

    public void augmenterScore(int nbPoints) {
        this.score += nbPoints;
    }

    public static int getScoreMinBestJoueur() {
        return scoreMinBestJoueur;
    }
    
    
}